/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.quician.webapp.controllers;

import com.quician.fifa.Equipo;
import com.quician.fifa.Grupo;
import com.quician.webapp.ejbs.GroupManager;
import com.quician.webapp.ejbs.TeamManager;
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import javax.inject.Named;

/**
 *
 * @author quician
 */

@Named(value="equiposAdminController")
@SessionScoped
public class EquiposAdminController implements Serializable{
    private static final long serialVersionUID = 1L;
    
    @EJB
    private TeamManager teamManager;
    
    @EJB
    private GroupManager groupManager;
    
    private List<Equipo> Equipos;
    private boolean LoadData = true;
    private Equipo equipo; // Grupo para persistir o modificar
    
    private List<Grupo> grupos;
    
    //Variable para nuevo EQUIPO
    private List<SelectItem> ListItemsGrupos;
    private Integer IdGrupo;
    private String nombre;
    private boolean CabezaSerie;

    
    

    
    
    public void LoadDataPageToNewTeam(){
        grupos = groupManager.getGroups();
        ListItemsGrupos = new ArrayList<>();
        for(Grupo g : grupos){
            ListItemsGrupos.add(new SelectItem(g.getId(), g.getNombre()));
        }
    }
    
    public void DeleteTeam(Equipo _equipo){
        equipo = _equipo;
        FacesContext context = FacesContext.getCurrentInstance();
        /*boolean success = groupManager.DeleteGroup(grupo);
        if(success){
            context.addMessage(null, new FacesMessage("Eliminación Grupo",  "El grupo ha sido eliminado.") );
            this.LoadData = true;
            grupo = null;
        }
        else
            context.addMessage(null, new FacesMessage("Eliminación Grupo",  "No fue posible eliminar el grupo.") );*/
    }
    
    public void RedirectToModifyTeam(Equipo _equipo){
        try {
            equipo = _equipo;
            FacesContext context = FacesContext.getCurrentInstance();
            context.getExternalContext().redirect(".xhtml");
        } catch (IOException ex) {
            Logger.getLogger(GruposAdminController.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public void LoadEquipos(){
        if(this.LoadData){
            Equipos =  teamManager.getTeams();
            this.LoadData = false;
        }
    }
    
    public void AddNewTeam(){
        
        System.out.println(IdGrupo);
        
        /*try {
            equipo = new Equipo();
            equipo.setNombre(nombre); 
            equipo.setCabezaSerie(CabezaSerie);

            FacesContext context = FacesContext.getCurrentInstance();
            boolean success = groupManager.AddGroup(null); 
            if(success){
                context.addMessage(null, new FacesMessage("Nuevo Grupo",  "El grupo ha sido creado.") );
                this.LoadData = true;
            }
            else
                context.addMessage(null, new FacesMessage("Nuevo Grupo",  "No fue posible crear el nuevo grupo.") );
            context.getExternalContext().redirect("Grupos.xhtml");
        } catch (IOException ex) {
            Logger.getLogger(GruposAdminController.class.getName()).log(Level.SEVERE, null, ex);
        }*/
    }
    
    public List<SelectItem> getListItemsGrupos() { return ListItemsGrupos; }
    public void setListItemsGrupos(List<SelectItem> ListItemsGrupos) { this.ListItemsGrupos = ListItemsGrupos; }
    public List<Equipo> getEquipos() { return Equipos; }
    public void setEquipos(List<Equipo> Equipos) {  this.Equipos = Equipos; }
    public Integer getIdGrupo() { return IdGrupo; }
    public void setIdGrupo(Integer IdGrupo) { this.IdGrupo = IdGrupo; }
    public String getNombre() {return nombre;}
    public void setNombre(String nombre) {this.nombre = nombre;}
    public boolean isCabezaSerie() {return CabezaSerie;}
    public void setCabezaSerie(boolean CabezaSerie) {this.CabezaSerie = CabezaSerie;}
}
